// Package _1_用递归的方式求一个数组中的最大值 main
// @Title _1_用递归的方式求一个数组中的最大值
// @Description  用递归的方式求一个数组的最大值
// @Author  == 琳琳也叫王木木 ==  2022-01-14 10:27
// @Create  2022-01-14 10:27
package main

import (
	"fmt"
)

func main() {
	nums := []int{10, 2, 3, 4, 5, 6, 7, 8, 9}
	fmt.Println(getMax(nums))
}

func getMax(nums []int) int {
	return process(nums, 0, len(nums)-1)
}

func maxInt(a, b int) int {
	if a > b {
		return a
	}
	return b
}

func process(arr []int, L, R int) int {
	if L == R {
		return arr[L]
	}
	//for i := L; i < R; i++ {
	//	fmt.Println(arr[i])
	//}
	mid := L + (R-L)>>2
	leftMax := process(arr, L, mid)
	rightMax := process(arr, mid+1, R)
	return maxInt(leftMax, rightMax)
}
